---
title: Compromises of Free Software Funding
date: 19 May 2017
bibliography: blog/financing-references.yaml
csl: blog/ieee.csl
...

> With software, either the users control the program... or the program
> controls the users...
>
> --Richard Stallman [@controlsoft]

Free software is defined as computer programs that people are free to use,
inspect, modify, and distribute for any purpose. With copyleft licenses, free
software may require modifications to be free as well; other free licenses do
not have this requirement [@freesoftwaredef]. Free software is seen by its
proponents as a precursor to a technically advanced free society, arguing that
proprietary software inherently abuses its users [@whyfreesw] by locking down
thousands of years of human innovation for profit, holding the user hostage to
the developers, and frequently betraying the users' privacy for mass
surveillance or targeted advertisements. The ideal of universal free software
is alluring, but the inevitable question of funding development arises:
although selling free software is technically permissible and encouraged by
some [@sellingfreesoftware], it is not a feasible model in practice.
Non-traditional models, however, can and do work, as evidenced by the funding
models of the various free projects discussed here, which enable large-scale
programs to flourish without constraints on time and quality. However, due to
funding constraints, ethical and cultural compromises may be useful or
necessary for free software to succeed in mainstream society.

One notable free software project is GNU, an operating system usually paired
with the Linux kernel. GNU is largely funded by individual donations to its
sister organisation, the Free Software Foundation. It is the flagship free
software project created by Richard Stallman, one of the early leaders in the
free software community. As a result, GNU was largely donation-driven software
[@aboutgnu]. Today, the GNU project depends increasingly on volunteer work
[@volunteergnu]. While this structure ensures there are few conflicts of
interests, it raises sustainability questions, as developers may need to write
proprietary software during the day to afford to work on GNU by night. 

The Linux kernel is another notable example. It was started by Linus Torvalds
as just a "hobby [that] won't be big and professional like [GNU]"
[@torvaldsemail]. Linux was released as free software almost incidentally; it
later gained prominence when connected with GNU in order to form the GNU+Linux
operating system. Today, Linux has a myriad of contributors: some volunteer,
some corporate. The volunteers are driven by the same idealism and desire for
recognition as GNU developers. Corporations like Intel have more pragmatic aims
when contributing: they want their hardware fully supported under Linux. While
these contributions may be individually benign, together they form a pattern of
a corporate-controlled kernel, evidenced by the member list of the Linux
Foundation [@linuxfoundationmembers]. The Linux Foundation has been thus
criticised for advancing corporate special interests despite the community's
best wishes. For example, the Linux Foundation introduced a controversial
voting policy in order to favour corporate sponsors over individuals
[@lfcontroversy]. However, the Linux Foundation is generally tolerated since it
employs critical kernel developers like Greg Kroah-Hartman and Torvalds himself
[@lfemployees]. In summary, Linux funding is from a mix of "pure" volunteer
work, "impure" corporate meddling, and middle-of-the-road corporate assistance.

Two additional projects diverge from this pattern: LibreOffice, a free office
suite, and Blender, an animation tool. These projects, unlike GNU and Linux,
began as proprietary programs, developed by proprietary developers, to be sold
under a proprietary license. Their paths to becoming free software differed,
however. LibreOffice, then known as "StarOffice", was freely released with the
intentions of public development [@officehistory]. By contrast, Blender was a
commercial failure; its source code was instead bought through the crowdsourced
"Free Blender" campaign [@blenderhistory]. After that, the two projects have
been maintained by the usual sources: volunteers, small corporations like
Collabora, and other organisations like the Document Foundation
[@officehistory] [@blenderhistory]. These projects -- and their income sources
-- were not developed with user freedom in mind, but today they form important,
free projects developed with the community's interests in mind.

Firefox is another well-known project that originated as a proprietary program,
Netscape Navigator, which was eventually released as free software to be
managed by the organisation Mozilla [@mozillahistory]. Mozilla is perhaps more
controversial than even the Linux Foundation, as the Mozilla projects may be
considered proprietary software due to their infamous trademark policy. The
policy restricts distribution of modified versions of the software in ways that
contradict certain free software definitions. In particular, Firefox failed the
Debian Free Software Guidelines, leading to a controversy in which the Mozilla
Foundation complained that Debian users "want the freedom to ship software that
sucks" [@mozilladebian]. One of Mozilla's major income sources has been search
engine endorsements for Google [@mozgoog] and Yahoo [@mozyahoo]. While
lucrative, this may contradict the free software ethos, as both companies are
actively hostile to user freedom and are key members of the PRISM mass
surveillance program [@prismlist]. Yet, despite its faults, Mozilla is able to
pay full-time engineers to develop Firefox [@mozcareers]. As a result, Firefox
has become a major browser, with about six-percent market share as of the time
of writing -- twice Internet Explorer's popularity [@statcounter]. Firefox has
emerged as a prominent libre project among those users that care, and it has
simultaneously prevailed as a gratis browser among users who have never heard
of the free software movement.

Libreboot is another high-importance project with a unique funding setup.
Libreboot is a free distribution of coreboot [@libreboot], a project seeking to
develop a (free) bootloader for specialised computing environments
[@coreboothistory]. The coreboot project has since departed from thid utopia,
including proprietary software in many new releases.  Major contributions to
the project come from Google engineers, as Google runs a version of coreboot on
their Chromebooks for pragmatic benefits [@googleboot].  As a result, with
Libreboot's de-blobbing scripts, laptops like the Asus C201 Chromebook are now
able to run a fully free stack, including the bootloader and embedded
controller. Of course, the engineer who integrated the C201 into Libreboot did
not work for Google. Google's interest was ChromeOS, an operating system
designed for use with their proprietary programs like Google Drive [@c201].
Funding for coreboot -- and by extension, Libreboot -- is plagued by messy
internal interests at businesses like Google, in stark contrast to the ideal of
philosophically-driven efforts by an engaged community.

Ultimately, there is a dilemma of philosophy versus economy. It is rarely
profitable for work to be driven by ideals; volunteer work is unpaid by
definition, and non-profit organisations rarely have the budget to afford
skilled positions at comparable salaries to the industry. Unfortunately, much
of the best free software is developed by parties hostile to free software for
purposes tangential to the vision of the free software community. As a result,
there is a controversy between "free software", emphasising freedom and
conjuring images of democracy, versus its rival term, "open source", a term
originating as a "marketing campaign" for free software [@marketingcampaign].
However, at the end of the day, free code is code; whether it is released under
copyleft or not, by Microsoft or Richard Stallman himself, the freedoms granted
are the same. Given that the free software movement is under attack, it is
unwise to reject free code written for the "wrong" reasons. In the short term,
the motives cannot matter, provided the code is free.

There are a variety of resolutions to this frequent question of compromise,
although certain compromises are more ruinous than others. One problematic
compromise, especially prominent among the greater free culture community, is
the usage of non-free licenses. In particular, there is a great deal of
popularity for certain licenses which forbid commercial use despite permitting
the other fundamental freedoms, notably the non-commercial Creative Commons
licenses. Authors cite a variety of reasons for choosing these licenses
[@opencontentguide, pp. 44]. Most of these issues are imagined or resolvable
with strong copyleft licenses, dubbed "the better NC [non-commercial license]"
[@opencontentguide, pp. 48]. Nevertheless, the issues caused by these
proprietary licenses are tangible. Unfortunately, the licenses continue to be
used in the mistaken belief that they solve the funding dilemma. 

One successful model is crowdfunding. Crowdfunding, a distributed funding model
to match free software's distributed ideals, has been able to fund a variety of
free software projects and their developers with varying degrees of success.
For instance, the Novena computer, a laptop with free schematics designed for
use with free software, was successfully funded via the site Crowd Supply.
After raising nearly $800,000, the Novena campaign _exceeded_ its goals,
additionally funding related projects like reverse-engineered accelerated
graphics drivers for the laptop [@novena]. The model has also been applied to
developers themselves with less success; for instance, the infamous programmer
Eric S. Raymond earns about two-thousand dollars per month through the website
Patreon, barely a living wage [@esrpatreon]. That said, while Crowd Supply is
endorsed by the Free Software Foundation [@csfree], Patreon is a proprietary
walled garden that does not even load without executing proprietary JavaScript
[^patreon]. Still, the models are successful. Additionally, projects like
Snowdrift.coop are pioneering new models specifically tailored to the needs of
free software and cultural works [@snowdriftmodel].

The nature of the modern capitalist state is inherently hostile to the free
software and free culture movements. Capitalism, as a model, is designed around
the premise of material scarcity, so the model functions as expected with
physical items. However, its virtues break down when applied to scientific and
creative works where distribution is gratis. It is tempting to give up hope,
faced with the choice between code that is ethical and code that is profitable.
Indeed, there will be little progress as long as businesses insist on profit by
any means necessary and free software activists insist on free software with
the same obstinance. However, small compromises are able to ripple into large
gains for both the industry and the free software movement; the goals are not
inherently incompatible. It is certainly ideal to run every project like GNU:
free from the onset and a labour of love. But even if this quixotic goal cannot
be reached in present society, great strides can still be made through "impure"
models like those used by Linux or Blender. Great care must be taken to ensure
the community is preserved: the open source movement failed ethically because
its corporate proponents are interested in exploiting free software developers
for undue profits. Yet when compromises can be reached, as through paired
projects like coreboot to Libreboot or Linux to Debian, the results can be
ethical and useful. In free software, perhaps the ends justify the means.

[^patreon]: Patreon's non-free JavaScript is required to verify this citation
  through normal means. To avoid this, the campaign data can be viewed directly
  as JSON from the [Patreon API]. Campaign amounts are found in the
  `pledge_sum` element. This JSON file is [mirrored for verification], as the
  value may be volatile.

[Patreon API]: https://api.patreon.com/campaigns/199059

[mirrored for verification]:
https://rosenzweig.io/esr-patreon-20170518T1717Z.json

## Acknowledgements

Thank you to the following people for editing:

* Aaron Wolf
* Fox Wilson
* Mum

## References
